package org.rvk.vms.api.volunteers;

import org.rvk.vms.dal.entities.Volunteer;
import org.rvk.vms.dal.model.search.SearchInput;
import org.rvk.vms.dal.model.search.SearchResult;
import org.rvk.vms.dal.model.VolunteersSummary;

/**
 * Volunteers service API.
 *
 * @author Ashish Kumar Sinha <aksinha.mail@gmail.com>
 */


public interface IVolunteersService {

    /**
     * To get the volunteers summary. Voluteers summary is kind of a report displayed on Voluteers dashboard.
     * Prepare this report and cache is for future use.
     *
     * @return - the volunteers summary
     */
    public VolunteersSummary getVolunteersSummary();

    /**
     * search for volunteers.
     *
     * @param searchInput
     * @return the pageable search result
     */
    public SearchResult<Volunteer> search(SearchInput searchInput);
}
